// VectorFields1Dlg.h : header file
//

#pragma once
#include "afxwin.h"

#include "DrawableWidget.h"

#include "ViewRotateYawPitch.h"

#include "NeuralNetViz.h"


// CVectorFields1Dlg dialog
class CVectorFields1Dlg : public CDialog
{
// Construction
public:
	CVectorFields1Dlg(CWnd* pParent = NULL);	// standard constructor

// Dialog Data
	enum { IDD = IDD_VECTORFIELDS1_DIALOG };

	protected:
	virtual void DoDataExchange(CDataExchange* pDX);	// DDX/DDV support


// Implementation
protected:

	bool m_bTimerStarted;
	DWORD m_nLastTickCount;

	bool m_bTimerETimeValid;
	int m_nTimerChannel;

	HICON m_hIcon;

	enum functionType
	{
		TYPE_UNIT_CIRCLE=0,
		TYPE_SINX_SINY=1,
		TYPE_HYPER_PARAB=2,
		TYPE_XOR=3,
		TYPE_SGN_SINX_SINY=4
	};

	functionType m_functionType;

	// Generated message map functions
	virtual BOOL OnInitDialog();
	afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
	afx_msg void OnPaint();
	afx_msg void OnTimer(UINT_PTR nIDEvent);
	afx_msg HCURSOR OnQueryDragIcon();
	afx_msg void OnMouseMove(UINT nFlags, CPoint point);
	// DECLARE_MESSAGE_MAP()
public:
	afx_msg void OnBnClickedOk();
	afx_msg void OnBnClickedCancel();

	// 
private:

	NeuralNetViz m_nnetViz;

	ViewRotateYawPitch m_viewControl;
	
	CDrawableWidget m_drawWidget;
	DECLARE_MESSAGE_MAP()
public:
	afx_msg void OnBnClickedButtonTrainUnitCircle();
	afx_msg void OnBnClickedButtonSinxSiny();
	afx_msg void OnBnClickedButtonHyperParab();
	afx_msg void OnBnClickedButtonXor();
	afx_msg void OnBnClickedButtonSgnSinxSiny();
	afx_msg void OnBnClickedButtonSave();
};
